package Boss直聘.奥枫;

import java.util.Random;

public class Main {
    public static void main(String[] args){
        function1(16,false,"");
    }


    private static String function1(int x,boolean b,String s) {
        /**
         * 拆数
         * 思路 3=1+2/1+(1+1)
         *     4=1+3/1+(3=1+2/1+(1+1))
         *     依次类推 每次只拆最后的那一个数字 只要不等于二就继续向下拆
         *     因为前面的数字不断变大,所以会重复 因此只用拆一半就可以 因为是和的关系 中值必然会重叠
         */
        if(x==1) return "1=1";//避免特殊情况
        if(x==2) return "2=1+1";
        for(int i=1;i<=x/2;i++){//防止重复出现
            if(!b) {
                System.out.println(x + "=" + i + "+" + (x - i));
                s = String.valueOf(x + "=" + i + "+");
            }else{
                System.out.println(i+"+"+(x - i));
                s = s+i+"+";
            }
            if((x - i)>2){
                System.out.print(s);
                if(function1((x - i),true,s).equals("")&&b) break; //递归拆数
            }
        }

        return "";
    }

}
